import { createI18n } from 'vue-i18n'
import { ref, watch } from 'vue'
import { useStorage } from '@vueuse/core'

// 导入语言包
import en from './locales/en'
import zh from './locales/zh'

// 创建一个响应式的语言选择变量，默认从localStorage读取，如果没有则使用zh
// 使用类型断言确保类型为'zh'|'en'
export const currentLanguage = useStorage<'zh' | 'en'>('vchat-language', 'zh')

// 创建i18n实例
const i18n = createI18n({
  legacy: false, // 使用组合式API
  locale: currentLanguage.value,
  fallbackLocale: 'zh',
  messages: {
    en,
    zh
  }
})

// 监听语言变化，动态切换
watch(currentLanguage, newLang => {
  // 使用类型断言确保类型兼容性
  i18n.global.locale.value = newLang as 'zh' | 'en'
})

export default i18n
